From 4e2d3f5d181f84523d3ab13aa18e15a8062dcd1a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 13 May 2011 16:21:20 +0200 Subject: [PATCH] cssprovider: Remove a bunch of commented-out code The code was only kept for reference while writing the new parser, it's not necessary anhymore. --- gtk/gtkcssprovider.c | 331 ------------------------------------------- 1 file changed, 331 deletions(-) diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 05b0f5a271..234bcc457d 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -1742,337 +1742,6 @@ css_provider_commit (GtkCssProvider *css_provider, } } -#if 0 -static GTokenType -parse_nth_child (GtkCssProvider *css_provider, - GScanner *scanner, - GtkRegionFlags *flags) -{ - ParserSymbol symbol; - - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_SYMBOL) - return G_TOKEN_SYMBOL; - - symbol = GPOINTER_TO_INT (scanner->value.v_symbol); - - if (symbol == SYMBOL_NTH_CHILD) - { - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_LEFT_PAREN) - return G_TOKEN_LEFT_PAREN; - - gtk_css_scanner_push_scope (scanner, SCOPE_NTH_CHILD); - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_SYMBOL) - return G_TOKEN_SYMBOL; - - symbol = GPOINTER_TO_INT (scanner->value.v_symbol); - - switch (symbol) - { - case SYMBOL_NTH_CHILD_EVEN: - *flags = GTK_REGION_EVEN; - break; - case SYMBOL_NTH_CHILD_ODD: - *flags = GTK_REGION_ODD; - break; - case SYMBOL_NTH_CHILD_FIRST: - *flags = GTK_REGION_FIRST; - break; - case SYMBOL_NTH_CHILD_LAST: - *flags = GTK_REGION_LAST; - break; - default: - break; - } - - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_RIGHT_PAREN) - return G_TOKEN_RIGHT_PAREN; - - gtk_css_scanner_pop_scope (scanner); - } - else if (symbol == SYMBOL_FIRST_CHILD) - *flags = GTK_REGION_FIRST; - else if (symbol == SYMBOL_LAST_CHILD) - *flags = GTK_REGION_LAST; - else if (symbol == SYMBOL_SORTED_CHILD) - *flags = GTK_REGION_SORTED; - else - { - *flags = 0; - return G_TOKEN_SYMBOL; - } - - return G_TOKEN_NONE; -} - -static GTokenType -parse_pseudo_class (GtkCssProvider *css_provider, - GScanner *scanner, - SelectorPath *selector) -{ - GtkStateType state; - - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_SYMBOL) - return G_TOKEN_SYMBOL; - - state = GPOINTER_TO_INT (scanner->value.v_symbol); - - switch (state) - { - case GTK_STATE_ACTIVE: - selector->state |= GTK_STATE_FLAG_ACTIVE; - break; - case GTK_STATE_PRELIGHT: - selector->state |= GTK_STATE_FLAG_PRELIGHT; - break; - case GTK_STATE_SELECTED: - selector->state |= GTK_STATE_FLAG_SELECTED; - break; - case GTK_STATE_INSENSITIVE: - selector->state |= GTK_STATE_FLAG_INSENSITIVE; - break; - case GTK_STATE_INCONSISTENT: - selector->state |= GTK_STATE_FLAG_INCONSISTENT; - break; - case GTK_STATE_FOCUSED: - selector->state |= GTK_STATE_FLAG_FOCUSED; - break; - default: - return G_TOKEN_SYMBOL; - } - - return G_TOKEN_NONE; -} - -/* Parses a number of concatenated classes */ -static void -parse_classes (SelectorPath *path, - const gchar *str) -{ - gchar *pos; - - if ((pos = strchr (str, '.')) != NULL) - { - /* Leave the last class to the call after the loop */ - while (pos) - { - *pos = '\0'; - selector_path_prepend_class (path, str); - - str = pos + 1; - pos = strchr (str, '.'); - } - } - - selector_path_prepend_class (path, str); -} - -static gboolean -is_widget_class_name (const gchar *str) -{ - /* Do a pretty lax check here, not all - * widget class names contain only CamelCase - * (gtkmm widgets don't), but at least part of - * the name will be CamelCase, so check for - * the first uppercase char - */ - while (*str) - { - if (g_ascii_isupper (*str)) - return TRUE; - - str++; - } - - return FALSE; -} - -static GTokenType -parse_selector (GtkCssProvider *css_provider, - GScanner *scanner, - SelectorPath **selector_out) -{ - SelectorPath *path; - - path = selector_path_new (); - *selector_out = path; - - if (scanner->token != ':' && - scanner->token != '#' && - scanner->token != '.' && - scanner->token != G_TOKEN_IDENTIFIER) - return G_TOKEN_IDENTIFIER; - - while (scanner->token == '#' || - scanner->token == '.' || - scanner->token == G_TOKEN_IDENTIFIER) - { - if (scanner->token == '#' || - scanner->token == '.') - { - gboolean is_class; - gchar *pos; - - is_class = (scanner->token == '.'); - - g_scanner_get_next_token (scanner); - - if (scanner->token != G_TOKEN_IDENTIFIER) - return G_TOKEN_IDENTIFIER; - - selector_path_prepend_glob (path); - selector_path_prepend_combinator (path, COMBINATOR_CHILD); - - if (is_class) - parse_classes (path, scanner->value.v_identifier); - else - { - if ((pos = strchr (scanner->value.v_identifier, '.')) != NULL) - *pos = '\0'; - - selector_path_prepend_name (path, scanner->value.v_identifier); - - /* Parse any remaining classes */ - if (pos) - parse_classes (path, pos + 1); - } - } - else if (is_widget_class_name (scanner->value.v_identifier)) - { - gchar *pos; - - if ((pos = strchr (scanner->value.v_identifier, '#')) != NULL || - (pos = strchr (scanner->value.v_identifier, '.')) != NULL) - { - gchar *type_name, *name; - gboolean is_class; - - is_class = (*pos == '.'); - - /* Widget type and name/class put together */ - name = pos + 1; - *pos = '\0'; - type_name = scanner->value.v_identifier; - - selector_path_prepend_type (path, type_name); - - /* This is only so there is a direct relationship - * between widget type and its name. - */ - selector_path_prepend_combinator (path, COMBINATOR_CHILD); - - if (is_class) - parse_classes (path, name); - else - { - if ((pos = strchr (name, '.')) != NULL) - *pos = '\0'; - - selector_path_prepend_combinator (path, COMBINATOR_CHILD); - selector_path_prepend_name (path, name); - - /* Parse any remaining classes */ - if (pos) - parse_classes (path, pos + 1); - } - } - else - selector_path_prepend_type (path, scanner->value.v_identifier); - } - else if (_gtk_style_context_check_region_name (scanner->value.v_identifier)) - { - GtkRegionFlags flags = 0; - gchar *region_name; - - region_name = g_strdup (scanner->value.v_identifier); - - if (g_scanner_peek_next_token (scanner) == ':') - { - ParserSymbol symbol; - - g_scanner_get_next_token (scanner); - gtk_css_scanner_push_scope (scanner, SCOPE_PSEUDO_CLASS); - - /* Check for the next token being nth-child, parse in that - * case, and fallback into common state parsing if not. - */ - if (g_scanner_peek_next_token (scanner) != G_TOKEN_SYMBOL) - return G_TOKEN_SYMBOL; - - symbol = GPOINTER_TO_INT (scanner->next_value.v_symbol); - - if (symbol == SYMBOL_FIRST_CHILD || - symbol == SYMBOL_LAST_CHILD || - symbol == SYMBOL_NTH_CHILD || - symbol == SYMBOL_SORTED_CHILD) - { - GTokenType token; - - if ((token = parse_nth_child (css_provider, scanner, &flags)) != G_TOKEN_NONE) - return token; - - gtk_css_scanner_pop_scope (scanner); - } - else - { - gtk_css_scanner_pop_scope (scanner); - selector_path_prepend_region (path, region_name, 0); - g_free (region_name); - break; - } - } - - selector_path_prepend_region (path, region_name, flags); - g_free (region_name); - } - else if (scanner->value.v_identifier[0] == '*') - selector_path_prepend_glob (path); - else - return G_TOKEN_IDENTIFIER; - - g_scanner_get_next_token (scanner); - - if (scanner->token == '>') - { - selector_path_prepend_combinator (path, COMBINATOR_CHILD); - g_scanner_get_next_token (scanner); - } - } - - if (scanner->token == ':') - { - /* Add glob selector if path is empty */ - if (selector_path_depth (path) == 0) - selector_path_prepend_glob (path); - - gtk_css_scanner_push_scope (scanner, SCOPE_PSEUDO_CLASS); - - while (scanner->token == ':') - { - GTokenType token; - - if ((token = parse_pseudo_class (css_provider, scanner, path)) != G_TOKEN_NONE) - return token; - - g_scanner_get_next_token (scanner); - } - - gtk_css_scanner_pop_scope (scanner); - } - - return G_TOKEN_NONE; -} -#endif - static void resolve_binding_sets (const gchar *value_str, GValue *value) -- 2.30.2